/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Simulacion.Controlador;

import com.dp1.pucp.Modelo.Algoritmos.Galleta;
import com.dp1.pucp.Modelo.Algoritmos.Solucion;
import com.dp1.pucp.Simulacion.VIsta.ResAsignacionesGUI;
import com.dp1.pucp.Simulacion.VIsta.ResSimulacionGUI;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;

/**
 *
 * @author Rodrigo
 */
public class ResultadoSimulacionControlador {
    
    private ResSimulacionGUI vista;
    private Solucion solucion;
    private int turno;
    private SimulacionControlador controladorPadre;
    
    
    
    public ResultadoSimulacionControlador(ResSimulacionGUI vista, Solucion sol, int turno,SimulacionControlador controladorPadre){
        
        this.vista=vista;
        this.solucion=sol;
        this.turno=turno;    
        this.controladorPadre=controladorPadre;
        this.vista.addCerrarListener(new cerrarListener());
        this.vista.addVerAsignacionesListener(new verAsignacionesListener());
        this.llenarResultados();
        
    }
    
    public SimulacionControlador getControladorPadre(){
        return controladorPadre;      
    }
    
    private void llenarResultados(){
        Date date = new Date();
        vista.setFecha(date);//fecha de la simulacion      
            vista.setNumOperarios(solucion.getAsignados().size());//numero de operarios asignados
        vista.setProdTotal(solucion.calcProd());
        vista.setMermaTotal(solucion.calcMerm());

            int tam = solucion.getGalletas().get(0).getInv_ini_proc().length;
            Galleta gal1 = solucion.getGalletas().get(0);
        //vista.setProdSoda(gal1.getDemandacubierta()+gal1.getInv_ini_proc()[tam-1]-gal1.getInv_nuevo()[tam-1]);
        
        Galleta gal2 = solucion.getGalletas().get(1);
        int tam2 =solucion.getGalletas().get(1).getInv_ini_proc().length;
        //vista.setProdDecorada(gal2.getDemandacubierta()+ gal2.getInv_ini_proc()[tam2-1]-gal2.getInv_nuevo()[tam2-1]);
        
        Galleta gal3 = solucion.getGalletas().get(2);
int tam3 = solucion.getGalletas().get(2).getInv_ini_proc().length;
        //vista.setProdRellena(gal3.getDemandacubierta()+ gal3.getInv_ini_proc()[tam3-1]-gal3.getInv_nuevo()[tam3-1]);
        
        vista.setProductos(gal1.getDemandacubierta()+gal1.getInv_ini_proc()[tam-1]-gal1.getInv_nuevo()[tam-1], gal2.getDemandacubierta()+ gal2.getInv_ini_proc()[tam2-1]-gal2.getInv_nuevo()[tam2-1], gal3.getDemandacubierta()+ gal3.getInv_ini_proc()[tam3-1]-gal3.getInv_nuevo()[tam3-1]);

        vista.setTurno(solucion.getTurno());
        if (solucion.calcProd()==0){
           
        }
        
    }
    
    
    class verAsignacionesListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            
            ResAsignacionesGUI gui = new ResAsignacionesGUI(vista.getPadre(),true);
            ResultadoAsignacionControlador controlador = new ResultadoAsignacionControlador(gui,solucion,getControladorPadre());
            gui.setVisible(true);         
        }
        
    }
    
    
    class cerrarListener implements ActionListener {
        
        @Override
        public void actionPerformed(ActionEvent e) {
            
            vista.dispose();
            
        }
        
    }
}
